package hcn.protocol.ods.paymentXML;

import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;

/**
 * @Author:FangZhiyi
 * @Description
 * @Data Created in 2020/11/6 18:18
 * @Moddified By:
 */

@XmlRootElement(name = "Data")
public class GetFeeDetailXMLResp  implements Serializable {
    /*医院ID，医院系统身份标识*/
    private String VisitOrganization;
    /*医院名称*/
    private String VisitOrganizationName;
    /*指定科室ID*/
    private String DeptCode;
    /*科室名称*/
    private String DeptName;
    /*医生姓名*/
    private String DoctorName;
    /*就诊时间*/
    private String VisitDateTime;
    /*诊疗卡类型，参照字典CVX_CardType*/
    private String MedicalCardType;
    /*诊疗卡号码*/
    private String MedicalCardId;
    /*患者在 his 中的唯一标识*/
    private String SourcePatientId;
    /*患者姓名*/
    private String SourcePatientName;
    /*病人性质*/
    private String PatientProperties;
    /*总金额*/
    private String TotalCost;
    /*付款金额*/
    private String SelfCost;
    /*医保报销金额*/
    private String MedicalExpensesCost;
    /*结算明细(这个由HIS根据业务需求拼接，示例：总费用：16.00 ,自费金额：6.00,其中历年医保支付4.00，本年账户支付:6.00 )*/
    private String SettlementDetails;
    /*发票号码*/
    private String InvoiceCode;
    /*打印状态，0未打印（默认），1已打印*/
    private String InvoiceStatus;
    /*支付方式，1-支付宝/2-微信/3-银联/4-聚合支付-支付宝/5-聚合支付-微信,其它支付方式另外约定*/
    private String MedicalCostPayTypeCode;
    /*交易流水号,第三方支付生成*/
    private String AgtOrderNumber;
    /*结算时间*/
    private String SettleDateTime;
    /*退款时间*/
    private String RefundTime;
    /*退款流水号*/
    private String RefundNumber;
    /*收费单据列表*/
    private List<Record> Records;


    @XmlElement(name = "VisitOrganization")
    public String getVisitOrganization() {
        return VisitOrganization;
    }

    public void setVisitOrganization(String visitOrganization) {
        VisitOrganization = visitOrganization;
    }

    @XmlElement(name = "VisitOrganizationName")
    public String getVisitOrganizationName() {
        return VisitOrganizationName;
    }

    public void setVisitOrganizationName(String visitOrganizationName) {
        VisitOrganizationName = visitOrganizationName;
    }

    @XmlElement(name = "DeptCode")
    public String getDeptCode() {
        return DeptCode;
    }

    public void setDeptCode(String deptCode) {
        DeptCode = deptCode;
    }

    @XmlElement(name = "DeptName")
    public String getDeptName() {
        return DeptName;
    }

    public void setDeptName(String deptName) {
        DeptName = deptName;
    }

    @XmlElement(name = "DoctorName")
    public String getDoctorName() {
        return DoctorName;
    }

    public void setDoctorName(String doctorName) {
        DoctorName = doctorName;
    }

    @XmlElement(name = "VisitDateTime")
    public String getVisitDateTime() {
        return VisitDateTime;
    }

    public void setVisitDateTime(String visitDateTime) {
        VisitDateTime = visitDateTime;
    }

    @XmlElement(name = "MedicalCardType")
    public String getMedicalCardType() {
        return MedicalCardType;
    }

    public void setMedicalCardType(String medicalCardType) {
        MedicalCardType = medicalCardType;
    }

    @XmlElement(name = "MedicalCardId")
    public String getMedicalCardId() {
        return MedicalCardId;
    }

    public void setMedicalCardId(String medicalCardId) {
        MedicalCardId = medicalCardId;
    }

    @XmlElement(name = "SourcePatientId")
    public String getSourcePatientId() {
        return SourcePatientId;
    }

    public void setSourcePatientId(String sourcePatientId) {
        SourcePatientId = sourcePatientId;
    }

    @XmlElement(name = "SourcePatientName")
    public String getSourcePatientName() {
        return SourcePatientName;
    }

    public void setSourcePatientName(String sourcePatientName) {
        SourcePatientName = sourcePatientName;
    }

    @XmlElement(name = "PatientProperties")
    public String getPatientProperties() {
        return PatientProperties;
    }

    public void setPatientProperties(String patientProperties) {
        PatientProperties = patientProperties;
    }

    @XmlElement(name = "TotalCost")
    public String getTotalCost() {
        return TotalCost;
    }

    public void setTotalCost(String totalCost) {
        TotalCost = totalCost;
    }

    @XmlElement(name = "SelfCost")
    public String getSelfCost() {
        return SelfCost;
    }

    public void setSelfCost(String selfCost) {
        SelfCost = selfCost;
    }

    @XmlElement(name = "MedicalExpensesCost")
    public String getMedicalExpensesCost() {
        return MedicalExpensesCost;
    }

    public void setMedicalExpensesCost(String medicalExpensesCost) {
        MedicalExpensesCost = medicalExpensesCost;
    }

    @XmlElement(name = "SettlementDetails")
    public String getSettlementDetails() {
        return SettlementDetails;
    }

    public void setSettlementDetails(String settlementDetails) {
        SettlementDetails = settlementDetails;
    }

    @XmlElement(name = "InvoiceCode")
    public String getInvoiceCode() {
        return InvoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        InvoiceCode = invoiceCode;
    }

    @XmlElement(name = "InvoiceStatus")
    public String getInvoiceStatus() {
        return InvoiceStatus;
    }

    public void setInvoiceStatus(String invoiceStatus) {
        InvoiceStatus = invoiceStatus;
    }

    @XmlElement(name = "MedicalCostPayTypeCode")
    public String getMedicalCostPayTypeCode() {
        return MedicalCostPayTypeCode;
    }

    public void setMedicalCostPayTypeCode(String medicalCostPayTypeCode) {
        MedicalCostPayTypeCode = medicalCostPayTypeCode;
    }

    @XmlElement(name = "AgtOrderNumber")
    public String getAgtOrderNumber() {
        return AgtOrderNumber;
    }

    public void setAgtOrderNumber(String agtOrderNumber) {
        AgtOrderNumber = agtOrderNumber;
    }

    @XmlElement(name = "SettleDateTime")
    public String getSettleDateTime() {
        return SettleDateTime;
    }

    public void setSettleDateTime(String settleDateTime) {
        SettleDateTime = settleDateTime;
    }

    @XmlElement(name = "RefundTime")
    public String getRefundTime() {
        return RefundTime;
    }

    public void setRefundTime(String refundTime) {
        RefundTime = refundTime;
    }

    @XmlElement(name = "RefundNumber")
    public String getRefundNumber() {
        return RefundNumber;
    }

    public void setRefundNumber(String refundNumber) {
        RefundNumber = refundNumber;
    }

    @XmlElementWrapper(name = "Records")
    @XmlElement(name = "Record")
    public List<Record> getRecords() {
        return Records;
    }

    public void setRecords(List<Record> records) {
        Records = records;
    }

    public static class Record{
        /*收费单据标识*/
        private String FeeNo;
        /*类型代码*/
        private String FeeTypeCode;
        /*类型名称*/
        private String FeeTypeName;
        /*开单日期(yyyy-MM-dd HH:mm:ss)*/
        private String CostDate;
        /*单据金额*/
        private String DocumentFee;
        /*申请单号*/
        private String RequestId;
        /*处方单据列表*/
        private List<Detail> Details;
        /*处方单据列表*/
        private List<Detail> DetailList;

        @XmlElement(name = "FeeNo")
        public String getFeeNo() {
            return FeeNo;
        }

        public void setFeeNo(String feeNo) {
            FeeNo = feeNo;
        }

        @XmlElement(name = "FeeTypeCode")
        public String getFeeTypeCode() {
            return FeeTypeCode;
        }

        public void setFeeTypeCode(String feeTypeCode) {
            FeeTypeCode = feeTypeCode;
        }

        @XmlElement(name = "FeeTypeName")
        public String getFeeTypeName() {
            return FeeTypeName;
        }

        public void setFeeTypeName(String feeTypeName) {
            FeeTypeName = feeTypeName;
        }

        @XmlElement(name = "CostDate")
        public String getCostDate() {
            return CostDate;
        }

        public void setCostDate(String costDate) {
            CostDate = costDate;
        }

        @XmlElement(name = "DocumentFee")
        public String getDocumentFee() {
            return DocumentFee;
        }

        public void setDocumentFee(String documentFee) {
            DocumentFee = documentFee;
        }

        @XmlElement(name = "RequestId")
        public String getRequestId() {
            return RequestId;
        }

        public void setRequestId(String requestId) {
            RequestId = requestId;
        }

        @XmlElementWrapper(name = "Details")
        @XmlElement(name = "Detail")
        public List<Detail> getDetails() {
            return Details;
        }

        public void setDetails(List<Detail> details) {
            Details = details;
        }

        @XmlElementWrapper(name = "DetailList")
        @XmlElement(name = "DetailList")
        public List<Detail> getDetailList() {
            return DetailList;
        }

        public void setDetailList(List<Detail> detailList) {
            DetailList = detailList;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        public static class Detail{
            /*组号*/
            private String DrugsGroupNumber;
            /*项目代码*/
            private String CostId;
            /*项目名称*/
            private String CostName;
            /*项目规格*/
            private String Specifications;
            /*数量*/
            private String CostNumber;
            /*单价*/
            private String CostPrice;
            /*金额*/
            private String TotalCost;
            /*备注*/
            private String Remark;
            /*剂量*/
            private String DrugUseDose;
            /*剂量单位*/
            private String DrugUseDoseUnit;
            /*频次名称*/
            private String DrugUsingRateName;
            /*频次代码*/
            private String DrugUsingRate;
            /*用法代码*/
            private String DrugUsePathwaysCode;
            /*用法名称*/
            private String DrugUsePathwaysName;
            /*药品煎法编码(中草药该值不为空) */
            private String HerbalMedicineDecoction;
            /*药品煎法名称 */
            private String HerbalMedicineDecoctionName;
            /*用药天数*/
            private String MedicineDays;

            public String getDrugsGroupNumber() {
                return DrugsGroupNumber;
            }

            public void setDrugsGroupNumber(String drugsGroupNumber) {
                DrugsGroupNumber = drugsGroupNumber;
            }

            public String getCostId() {
                return CostId;
            }

            public void setCostId(String costId) {
                CostId = costId;
            }

            public String getCostName() {
                return CostName;
            }

            public void setCostName(String costName) {
                CostName = costName;
            }

            public String getSpecifications() {
                return Specifications;
            }

            public void setSpecifications(String specifications) {
                Specifications = specifications;
            }

            public String getCostNumber() {
                return CostNumber;
            }

            public void setCostNumber(String costNumber) {
                CostNumber = costNumber;
            }

            public String getCostPrice() {
                return CostPrice;
            }

            public void setCostPrice(String costPrice) {
                CostPrice = costPrice;
            }

            public String getTotalCost() {
                return TotalCost;
            }

            public void setTotalCost(String totalCost) {
                TotalCost = totalCost;
            }

            public String getRemark() {
                return Remark;
            }

            public void setRemark(String remark) {
                Remark = remark;
            }

            public String getDrugUseDose() {
                return DrugUseDose;
            }

            public void setDrugUseDose(String drugUseDose) {
                DrugUseDose = drugUseDose;
            }

            public String getDrugUseDoseUnit() {
                return DrugUseDoseUnit;
            }

            public void setDrugUseDoseUnit(String drugUseDoseUnit) {
                DrugUseDoseUnit = drugUseDoseUnit;
            }

            public String getDrugUsingRateName() {
                return DrugUsingRateName;
            }

            public void setDrugUsingRateName(String drugUsingRateName) {
                DrugUsingRateName = drugUsingRateName;
            }

            public String getDrugUsingRate() {
                return DrugUsingRate;
            }

            public void setDrugUsingRate(String drugUsingRate) {
                DrugUsingRate = drugUsingRate;
            }

            public String getDrugUsePathwaysCode() {
                return DrugUsePathwaysCode;
            }

            public void setDrugUsePathwaysCode(String drugUsePathwaysCode) {
                DrugUsePathwaysCode = drugUsePathwaysCode;
            }

            public String getDrugUsePathwaysName() {
                return DrugUsePathwaysName;
            }

            public void setDrugUsePathwaysName(String drugUsePathwaysName) {
                DrugUsePathwaysName = drugUsePathwaysName;
            }

            public String getHerbalMedicineDecoction() {
                return HerbalMedicineDecoction;
            }

            public void setHerbalMedicineDecoction(String herbalMedicineDecoction) {
                HerbalMedicineDecoction = herbalMedicineDecoction;
            }

            public String getHerbalMedicineDecoctionName() {
                return HerbalMedicineDecoctionName;
            }

            public void setHerbalMedicineDecoctionName(String herbalMedicineDecoctionName) {
                HerbalMedicineDecoctionName = herbalMedicineDecoctionName;
            }

            public String getMedicineDays() {
                return MedicineDays;
            }

            public void setMedicineDays(String medicineDays) {
                MedicineDays = medicineDays;
            }
        }


    }

}
